<html><head>
<link rel="stylesheet" href="_style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="GL" rel="Chapter" href="GL.html">
<link title="Glu" rel="Chapter" href="Glu.html">
<link title="Glut" rel="Chapter" href="Glut.html">
<link title="VertArray" rel="Chapter" href="VertArray.html">
<link title="VBO" rel="Chapter" href="VBO.html">
<link title="GLE" rel="Chapter" href="GLE.html">
<link title="Ftgl" rel="Chapter" href="Ftgl.html">
<link title="Jpeg_loader" rel="Chapter" href="Jpeg_loader.html">
<link title="Png_loader" rel="Chapter" href="Png_loader.html">
<link title="Svg_loader" rel="Chapter" href="Svg_loader.html">
<link title="Genimg_loader" rel="Chapter" href="Genimg_loader.html">
<link title="FunGL" rel="Chapter" href="FunGL.html">
<link title="FunGlut" rel="Chapter" href="FunGlut.html"><title>GL</title>
</head>
<body>
<code class="code"><span class="keyword">sig</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;primitive&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_POINTS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_LOOP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_STRIP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TRIANGLES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TRIANGLE_STRIP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TRIANGLE_FAN</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_QUADS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_QUAD_STRIP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glBegin&nbsp;:&nbsp;primitive:<span class="constructor">GL</span>.primitive&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glbegin"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEnd&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glend"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertex2&nbsp;:&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glvertex2"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertex3&nbsp;:&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;z:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glvertex3"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertex4&nbsp;:&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;z:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;w:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertex4"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertex2v&nbsp;:&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glvertex2v"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertex3v&nbsp;:&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glvertex3v"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertex4v&nbsp;:&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertex4v"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glNormal3&nbsp;:&nbsp;nx:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;ny:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;nz:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glnormal3"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glNormal3v&nbsp;:&nbsp;v:float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glnormal3v"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glIndex&nbsp;:&nbsp;c:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glindexd"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glIndexi&nbsp;:&nbsp;c:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glindexi"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColor3&nbsp;:&nbsp;r:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;g:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;b:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glcolor3"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColor4&nbsp;:&nbsp;r:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;g:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;b:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;a:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glcolor4"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColor3v&nbsp;:&nbsp;v:float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glcolor3v"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColor4v&nbsp;:&nbsp;v:float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glcolor4v"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColor3c&nbsp;:&nbsp;r:char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;g:char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;b:char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glcolor3c"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColor4c&nbsp;:&nbsp;r:char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;g:char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;b:char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;a:char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glcolor4c"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColor3cv&nbsp;:&nbsp;v:char&nbsp;*&nbsp;char&nbsp;*&nbsp;char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glcolor3cv"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColor4cv&nbsp;:&nbsp;v:char&nbsp;*&nbsp;char&nbsp;*&nbsp;char&nbsp;*&nbsp;char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glcolor4cv"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEdgeFlag&nbsp;:&nbsp;flag:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gledgeflag"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos2&nbsp;:&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glrasterpos2d"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos3&nbsp;:&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;z:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrasterpos3d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos4&nbsp;:&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;z:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;w:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrasterpos4d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos2i&nbsp;:&nbsp;x:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glrasterpos2i"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos3i&nbsp;:&nbsp;x:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;z:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrasterpos3i"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos4i&nbsp;:&nbsp;x:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;z:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;w:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrasterpos4i"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos2v&nbsp;:&nbsp;v:float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glrasterpos2dv"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos3v&nbsp;:&nbsp;v:float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrasterpos3dv"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos4v&nbsp;:&nbsp;v:float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrasterpos4dv"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos2iv&nbsp;:&nbsp;v:int&nbsp;*&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glrasterpos2iv"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos3iv&nbsp;:&nbsp;v:int&nbsp;*&nbsp;int&nbsp;*&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glrasterpos3iv"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRasterPos4iv&nbsp;:&nbsp;v:int&nbsp;*&nbsp;int&nbsp;*&nbsp;int&nbsp;*&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrasterpos4iv"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRecti&nbsp;:&nbsp;x1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;x2:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y2:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrecti"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRect&nbsp;:&nbsp;x1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;x2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrect"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;matrix_mode&nbsp;=&nbsp;<span class="constructor">GL_MODELVIEW</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PROJECTION</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glMatrixMode&nbsp;:&nbsp;mode:<span class="constructor">GL</span>.matrix_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glmatrixmode"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glViewport&nbsp;:&nbsp;x:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glviewport"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glOrtho&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;left:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;right:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;bottom:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;top:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;near:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;far:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glortho_bytecode"</span>&nbsp;<span class="string">"ml_glortho_native"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glFrustum&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;left:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;right:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;bottom:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;top:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;near:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;far:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glfrustum_bytecode"</span>&nbsp;<span class="string">"ml_glfrustum_native"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPushMatrix&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glpushmatrix"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPopMatrix&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glpopmatrix"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glLoadIdentity&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glloadidentity"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRotatev&nbsp;:&nbsp;angle:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;vec:float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrotatev"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRotate&nbsp;:&nbsp;angle:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;z:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glrotate"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTranslatev&nbsp;:&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gltranslatev"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTranslate&nbsp;:&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;z:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gltranslate"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glScalev&nbsp;:&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glscalev"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glScale&nbsp;:&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;z:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glscale"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glMultMatrix&nbsp;:&nbsp;mat:float&nbsp;array&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glMultMatrixFlat&nbsp;:&nbsp;float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glmultmatrixd_flat"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glMultMatrixFlat_unsafe&nbsp;:&nbsp;float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glmultmatrixd_flat_unsafe"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glLoadMatrix&nbsp;:&nbsp;mat:float&nbsp;array&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glLoadMatrixFlat&nbsp;:&nbsp;float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glloadmatrixd_flat"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glLoadMatrixFlat_unsafe&nbsp;:&nbsp;float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glloadmatrixd_flat_unsafe"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glFlush&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glflush"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;orientation&nbsp;=&nbsp;<span class="constructor">GL_CW</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CCW</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glFrontFace&nbsp;:&nbsp;orientation:<span class="constructor">GL</span>.orientation&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glfrontface"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glScissor&nbsp;:&nbsp;x:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glscissor"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glFinish&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glfinish"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glClearColor&nbsp;:&nbsp;r:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;g:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;b:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;a:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glclearcolor"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glClearIndex&nbsp;:&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glclearindex"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColorMask&nbsp;:&nbsp;r:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;g:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;b:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;a:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glcolormask"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Attrib</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;attrib_bit&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ACCUM_BUFFER_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_BUFFER_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_BUFFER_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ENABLE_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EVAL_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_HINT_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHTING_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIST_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MULTISAMPLE_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MODE_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_STIPPLE_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SCISSOR_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STENCIL_BUFFER_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TRANSFORM_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VIEWPORT_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPushAttrib&nbsp;:&nbsp;attrib:<span class="constructor">GL</span>.<span class="constructor">Attrib</span>.attrib_bit&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpushattrib"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPopAttrib&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glpopattrib"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;face_mode&nbsp;=&nbsp;<span class="constructor">GL_FRONT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BACK</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRONT_AND_BACK</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;polygon_mode&nbsp;=&nbsp;<span class="constructor">GL_POINT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FILL</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPolygonMode&nbsp;:&nbsp;face:<span class="constructor">GL</span>.face_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;mode:<span class="constructor">GL</span>.polygon_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpolygonmode"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetPolygonMode&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.polygon_mode&nbsp;*&nbsp;<span class="constructor">GL</span>.polygon_mode<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetpolygonmode"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;clear_mask&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_COLOR_BUFFER_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_BUFFER_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ACCUM_BUFFER_BIT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STENCIL_BUFFER_BIT</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glClear&nbsp;:&nbsp;mask:<span class="constructor">GL</span>.clear_mask&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glclear"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glLineWidth&nbsp;:&nbsp;width:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gllinewidth"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPointSize&nbsp;:&nbsp;size:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glpointsize"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;sprite_coord_origin&nbsp;=&nbsp;<span class="constructor">GL_LOWER_LEFT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UPPER_LEFT</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;point_parameter&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_POINT_SIZE_MIN</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SIZE_MAX</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_FADE_THRESHOLD_SIZE</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_DISTANCE_ATTENUATION</span>&nbsp;<span class="keyword">of</span>&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SPRITE_COORD_ORIGIN</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.sprite_coord_origin<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glPointParameter&nbsp;:&nbsp;<span class="constructor">GL</span>.point_parameter&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;gl_func&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_NEVER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LESS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EQUAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LEQUAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GREATER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NOTEQUAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GEQUAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALWAYS</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glAlphaFunc&nbsp;:&nbsp;func:<span class="constructor">GL</span>.gl_func&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;ref:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glalphafunc"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;hint_target&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_FOG_HINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_SMOOTH_HINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PERSPECTIVE_CORRECTION_HINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SMOOTH_HINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_SMOOTH_HINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_COMPRESSION_HINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GENERATE_MIPMAP_HINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRAGMENT_SHADER_DERIVATIVE_HINT</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;hint_mode&nbsp;=&nbsp;<span class="constructor">GL_FASTEST</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NICEST</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DONT_CARE</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glHint&nbsp;:&nbsp;target:<span class="constructor">GL</span>.hint_target&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;mode:<span class="constructor">GL</span>.hint_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glhint"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glCullFace&nbsp;:&nbsp;mode:<span class="constructor">GL</span>.face_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glcullface"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetCullFaceMode&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.face_mode&nbsp;=&nbsp;<span class="string">"ml_glgetcullfacemode"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glLineStipple&nbsp;:&nbsp;factor:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pattern:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gllinestipple"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;polygon_stipple_mask&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(int,&nbsp;<span class="constructor">Bigarray</span>.int8_unsigned_elt,&nbsp;<span class="constructor">Bigarray</span>.c_layout)&nbsp;<span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPolygonStipple&nbsp;:&nbsp;mask:<span class="constructor">GL</span>.polygon_stipple_mask&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpolygonstipple"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPolygonStipple_unsafe&nbsp;:&nbsp;mask:<span class="constructor">GL</span>.polygon_stipple_mask&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpolygonstipple_unsafe"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">DrawBuffer</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;draw_buffer_mode&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_NONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRONT_LEFT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRONT_RIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BACK_LEFT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BACK_RIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRONT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BACK</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LEFT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRONT_AND_BACK</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUX0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUX1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUX2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUX3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDrawBuffer&nbsp;:&nbsp;mode:<span class="constructor">GL</span>.<span class="constructor">DrawBuffer</span>.draw_buffer_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gldrawbuffer"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">ReadBuffer</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;read_buffer_mode&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_FRONT_LEFT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRONT_RIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BACK_LEFT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BACK_RIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRONT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BACK</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LEFT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUX0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUX1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUX2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUX3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glReadBuffer&nbsp;:&nbsp;mode:<span class="constructor">GL</span>.<span class="constructor">ReadBuffer</span>.read_buffer_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glreadbuffer"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Sfactor</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;blend_sfactor&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ZERO</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DST_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE_MINUS_DST_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE_MINUS_SRC_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DST_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE_MINUS_DST_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC_ALPHA_SATURATE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Dfactor</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;blend_dfactor&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ZERO</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE_MINUS_SRC_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE_MINUS_SRC_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DST_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE_MINUS_DST_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glBlendFunc&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;sfactor:<span class="constructor">GL</span>.<span class="constructor">Sfactor</span>.blend_sfactor&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;dfactor:<span class="constructor">GL</span>.<span class="constructor">Dfactor</span>.blend_dfactor&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glblendfunc"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;blend_mode&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_FUNC_ADD</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FUNC_SUBTRACT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FUNC_REVERSE_SUBTRACT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MIN</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glBlendEquation&nbsp;:&nbsp;mode:<span class="constructor">GL</span>.blend_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glblendequation"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Op</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;op_code&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_CLEAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SET</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COPY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COPY_INVERTED</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NOOP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INVERT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AND</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NAND</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_XOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EQUIV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AND_REVERSE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AND_INVERTED</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OR_REVERSE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OR_INVERTED</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glLogicOp&nbsp;:&nbsp;opcode:<span class="constructor">GL</span>.<span class="constructor">Op</span>.op_code&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gllogicop"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPolygonOffset&nbsp;:&nbsp;factor:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;units:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpolygonoffset"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;shade_mode&nbsp;=&nbsp;<span class="constructor">GL_FLAT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SMOOTH</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glShadeModel&nbsp;:&nbsp;<span class="constructor">GL</span>.shade_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glshademodel"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Light</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;light_pname&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_SPOT_EXPONENT</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPOT_CUTOFF</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CONSTANT_ATTENUATION</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINEAR_ATTENUATION</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_QUADRATIC_ATTENUATION</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPOT_DIRECTION</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AMBIENT</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DIFFUSE</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPECULAR</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POSITION</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;gl_light&nbsp;=&nbsp;<span class="constructor">GL_LIGHT</span>&nbsp;<span class="keyword">of</span>&nbsp;int<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glLight&nbsp;:&nbsp;light:<span class="constructor">GL</span>.gl_light&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pname:<span class="constructor">GL</span>.<span class="constructor">Light</span>.light_pname&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;color_control&nbsp;=&nbsp;<span class="constructor">GL_SEPARATE_SPECULAR_COLOR</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SINGLE_COLOR</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;light_model&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_LIGHT_MODEL_AMBIENT</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT_MODEL_COLOR_CONTROL</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.color_control<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT_MODEL_LOCAL_VIEWER</span>&nbsp;<span class="keyword">of</span>&nbsp;bool<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT_MODEL_TWO_SIDE</span>&nbsp;<span class="keyword">of</span>&nbsp;bool<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glLightModel&nbsp;:&nbsp;light_model:<span class="constructor">GL</span>.light_model&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Material</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;material_mode&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_AMBIENT</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DIFFUSE</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPECULAR</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EMISSION</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SHININESS</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AMBIENT_AND_DIFFUSE</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_INDEXES</span>&nbsp;<span class="keyword">of</span>&nbsp;(int&nbsp;*&nbsp;int&nbsp;*&nbsp;int)<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glMaterial&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;face:<span class="constructor">GL</span>.face_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;mode:<span class="constructor">GL</span>.<span class="constructor">Material</span>.material_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">GetMat</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;face_mode&nbsp;=&nbsp;<span class="constructor">GL_FRONT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BACK</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_material_4f&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_AMBIENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DIFFUSE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPECULAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EMISSION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_material_1f&nbsp;=&nbsp;<span class="constructor">GL_SHININESS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_material_3i&nbsp;=&nbsp;<span class="constructor">GL_COLOR_INDEXES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetMaterial4f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.<span class="constructor">GetMat</span>.face_mode&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;mode:<span class="constructor">GL</span>.<span class="constructor">GetMat</span>.get_material_4f&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetmaterial4f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetMaterial1f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.<span class="constructor">GetMat</span>.face_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;mode:<span class="constructor">GL</span>.<span class="constructor">GetMat</span>.get_material_1f&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetmaterial1f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetMaterial3i&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.<span class="constructor">GetMat</span>.face_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;mode:<span class="constructor">GL</span>.<span class="constructor">GetMat</span>.get_material_3i&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;*&nbsp;int&nbsp;*&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetmaterial3i"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;color_material_mode&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_EMISSION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AMBIENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DIFFUSE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPECULAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AMBIENT_AND_DIFFUSE</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glColorMaterial&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;face:<span class="constructor">GL</span>.face_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;mode:<span class="constructor">GL</span>.color_material_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glcolormaterial"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glSecondaryColor3&nbsp;:&nbsp;red:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;green:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;blue:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glsecondarycolor3d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glStencilFunc&nbsp;:&nbsp;func:<span class="constructor">GL</span>.gl_func&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;ref:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;mask:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glstencilfunc"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glStencilFuncn&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;func:<span class="constructor">GL</span>.gl_func&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;ref:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;mask:nativeint&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glstencilfuncn"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glStencilMask&nbsp;:&nbsp;mask:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glstencilmask"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;stencil_op&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_KEEP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ZERO</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_REPLACE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INCR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INCR_WRAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DECR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DECR_WRAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INVERT</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glStencilOp&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;sfail:<span class="constructor">GL</span>.stencil_op&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;dpfail:<span class="constructor">GL</span>.stencil_op&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;dppass:<span class="constructor">GL</span>.stencil_op&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glstencilop"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glClearStencil&nbsp;:&nbsp;s:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glclearstencil"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDepthRange&nbsp;:&nbsp;near:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;far:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gldepthrange"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glClearDepth&nbsp;:&nbsp;depth:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glcleardepth"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDepthFunc&nbsp;:&nbsp;func:<span class="constructor">GL</span>.gl_func&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gldepthfunc"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDepthMask&nbsp;:&nbsp;bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gldepthmask"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;accum_op&nbsp;=&nbsp;<span class="constructor">GL_ACCUM</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LOAD</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ADD</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MULT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RETURN</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glAccum&nbsp;:&nbsp;op:<span class="constructor">GL</span>.accum_op&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glaccum"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glClearAccum&nbsp;:&nbsp;r:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;g:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;b:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;a:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glclearaccum"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;gl_capability&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ALPHA_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUTO_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLEND</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_LOGIC_OP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_MATERIAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_TABLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CONVOLUTION_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CONVOLUTION_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CULL_FACE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DITHER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_HISTOGRAM</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INDEX_LOGIC_OP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT6</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT7</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHTING</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_SMOOTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_STIPPLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_COLOR_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_VERTEX_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_VERTEX_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_COLOR_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_VERTEX_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_VERTEX_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MINMAX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MULTISAMPLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NORMALIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SMOOTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SPRITE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_FILL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_LINE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_POINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_SMOOTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_STIPPLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_COLOR_TABLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_COLOR_TABLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RESCALE_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLE_ALPHA_TO_COVERAGE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLE_ALPHA_TO_ONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLE_COVERAGE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SEPARABLE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SCISSOR_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STENCIL_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_3D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_Q</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_R</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_S</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_T</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERTEX_PROGRAM_POINT_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERTEX_PROGRAM_TWO_SIDE</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEnable&nbsp;:&nbsp;cap:<span class="constructor">GL</span>.gl_capability&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glenable"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDisable&nbsp;:&nbsp;cap:<span class="constructor">GL</span>.gl_capability&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gldisable"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Enabled</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;enabled_cap&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ALPHA_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUTO_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLEND</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_LOGIC_OP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_MATERIAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_SUM</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_TABLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CONVOLUTION_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CONVOLUTION_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CULL_FACE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DITHER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EDGE_FLAG_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_COORD_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_HISTOGRAM</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INDEX_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INDEX_LOGIC_OP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT6</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT7</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHTING</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_SMOOTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_STIPPLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_COLOR_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_COLOR_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_VERTEX_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_VERTEX_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MINMAX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MULTISAMPLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NORMAL_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NORMALIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SMOOTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SPRITE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_SMOOTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_FILL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_LINE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_POINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_STIPPLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_COLOR_TABLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_COLOR_TABLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RESCALE_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLE_ALPHA_TO_COVERAGE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLE_ALPHA_TO_ONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLE_COVERAGE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SCISSOR_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SECONDARY_COLOR_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SEPARABLE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STENCIL_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_3D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_COORD_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_Q</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_R</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_S</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_T</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERTEX_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERTEX_PROGRAM_POINT_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERTEX_PROGRAM_TWO_SIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glIsEnabled&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Enabled</span>.enabled_cap&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool&nbsp;=&nbsp;<span class="string">"ml_glisenabled"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;texture_id&nbsp;=&nbsp;<span class="keyword">private</span>&nbsp;int<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGenTextures&nbsp;:&nbsp;n:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.texture_id&nbsp;array&nbsp;=&nbsp;<span class="string">"ml_glgentextures"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGenTexture&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.texture_id&nbsp;=&nbsp;<span class="string">"ml_glgentexture"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">BindTex</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;texture_binding&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_TEXTURE_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_3D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glBindTexture&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">BindTex</span>.texture_binding&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;texture:<span class="constructor">GL</span>.texture_id&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glbindtexture"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUnbindTexture&nbsp;:&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">BindTex</span>.texture_binding&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glunbindtexture"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glBindTexture2D&nbsp;:&nbsp;texture:<span class="constructor">GL</span>.texture_id&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glbindtexture2d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUnbindTexture2D&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glunbindtexture2d"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDeleteTextures&nbsp;:&nbsp;textures:<span class="constructor">GL</span>.texture_id&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gldeletetextures"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDeleteTexture&nbsp;:&nbsp;texture:<span class="constructor">GL</span>.texture_id&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gldeletetexture"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glIsTexture&nbsp;:&nbsp;texture:<span class="constructor">GL</span>.texture_id&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool&nbsp;=&nbsp;<span class="string">"ml_glistexture"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPrioritizeTextures&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;textures:<span class="constructor">GL</span>.texture_id&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;priority:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glprioritizetextures"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPrioritizeTexture&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;texture:<span class="constructor">GL</span>.texture_id&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;priority:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glprioritizetexture"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPrioritizeTexturesp&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;prioritized_textures:(<span class="constructor">GL</span>.texture_id&nbsp;*&nbsp;float)&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glprioritizetexturesp"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">TexEnv</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;texenv_target&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_TEXTURE_ENV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_FILTER_CONTROL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SPRITE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;texenv_pname&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_TEXTURE_ENV_MODE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_LOD_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMBINE_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMBINE_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC0_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC1_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC2_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC0_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC1_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC2_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OPERAND0_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OPERAND1_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OPERAND2_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OPERAND0_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OPERAND1_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OPERAND2_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COORD_REPLACE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;texenv_param&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ADD</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ADD_SIGNED</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INTERPOLATE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MODULATE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DECAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLEND</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_REPLACE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SUBTRACT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMBINE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CONSTANT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PRIMARY_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PREVIOUS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE_MINUS_SRC_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRC_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ONE_MINUS_SRC_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TRUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FALSE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexEnv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.<span class="constructor">TexEnv</span>.texenv_target&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.<span class="constructor">TexEnv</span>.texenv_pname&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.<span class="constructor">TexEnv</span>.texenv_param&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gltexenv"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;tex_coord&nbsp;=&nbsp;<span class="constructor">GL_S</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_T</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_R</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_Q</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;tex_coord_gen_func&nbsp;=&nbsp;<span class="constructor">GL_TEXTURE_GEN_MODE</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;tex_gen_param&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_OBJECT_LINEAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EYE_LINEAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPHERE_MAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NORMAL_MAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_REFLECTION_MAP</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexGen&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.tex_coord&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.tex_coord_gen_func&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.tex_gen_param&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gltexgen"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;tex_coord_fun_params&nbsp;=&nbsp;<span class="constructor">GL_OBJECT_PLANE</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EYE_PLANE</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexGenv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.tex_coord&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.tex_coord_fun_params&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gltexgenv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexGenva&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.tex_coord&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.tex_coord_fun_params&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gltexgenva"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">TexTarget</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;target_2d&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_TEXTURE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PROXY_TEXTURE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_POSITIVE_X</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_NEGATIVE_X</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_POSITIVE_Y</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_POSITIVE_Z</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PROXY_TEXTURE_CUBE_MAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;target_1d&nbsp;=&nbsp;<span class="constructor">GL_TEXTURE_1D</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PROXY_TEXTURE_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;target_3d&nbsp;=&nbsp;<span class="constructor">GL_TEXTURE_3D</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PROXY_TEXTURE_3D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">InternalFormat</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;internal_format&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA12</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA16</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMPRESSED_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMPRESSED_LUMINANCE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMPRESSED_LUMINANCE_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMPRESSED_INTENSITY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMPRESSED_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMPRESSED_RGBA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_COMPONENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_COMPONENT16</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_COMPONENT24</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_COMPONENT32</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE12</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE16</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE4_ALPHA4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE6_ALPHA2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE8_ALPHA8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE12_ALPHA4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE12_ALPHA12</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE16_ALPHA16</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INTENSITY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INTENSITY4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INTENSITY8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INTENSITY12</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INTENSITY16</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_R3_G3_B2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB10</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB12</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB16</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGBA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGBA2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGBA4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB5_A1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGBA8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB10_A2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGBA12</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGBA16</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SLUMINANCE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SLUMINANCE8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SLUMINANCE_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SLUMINANCE8_ALPHA8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRGB8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRGB_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SRGB8_ALPHA8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_data_format&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_COLOR_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RED</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GREEN</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGBA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE_ALPHA</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_data_type&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_UNSIGNED_BYTE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BYTE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BITMAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SHORT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FLOAT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_BYTE_3_3_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_BYTE_2_3_3_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_5_6_5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_5_6_5_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_4_4_4_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_4_4_4_4_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_5_5_5_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_1_5_5_5_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT_8_8_8_8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT_8_8_8_8_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT_10_10_10_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT_2_10_10_10_REV</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;img_input&nbsp;=&nbsp;<span class="constructor">Filename</span>&nbsp;<span class="keyword">of</span>&nbsp;string&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Buffer</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;image_data&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(int,&nbsp;<span class="constructor">Bigarray</span>.int8_unsigned_elt,&nbsp;<span class="constructor">Bigarray</span>.c_layout)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Bigarray</span>.<span class="constructor">Genarray</span>.t<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;assert_size&nbsp;:&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexImage2D&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">TexTarget</span>.target_2d&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;level:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;internal_format:<span class="constructor">GL</span>.<span class="constructor">InternalFormat</span>.internal_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;format_:<span class="constructor">GL</span>.pixel_data_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;type_:<span class="constructor">GL</span>.pixel_data_type&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pixels:<span class="constructor">GL</span>.image_data&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glteximage2d_bytecode"</span>&nbsp;<span class="string">"ml_glteximage2d_native"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexImage2D_str&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">TexTarget</span>.target_2d&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;level:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;internal_format:<span class="constructor">GL</span>.<span class="constructor">InternalFormat</span>.internal_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;format_:<span class="constructor">GL</span>.pixel_data_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;type_:<span class="constructor">GL</span>.pixel_data_type&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pixels:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glteximage2d_str_bytecode"</span>&nbsp;<span class="string">"ml_glteximage2d_str_native"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexImage1D&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">TexTarget</span>.target_1d&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;level:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;internal_format:<span class="constructor">GL</span>.<span class="constructor">InternalFormat</span>.internal_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;format_:<span class="constructor">GL</span>.pixel_data_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;type_:<span class="constructor">GL</span>.pixel_data_type&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pixels:<span class="constructor">GL</span>.image_data&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glteximage1d_bytecode"</span>&nbsp;<span class="string">"ml_glteximage1d_native"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexImage3D&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">TexTarget</span>.target_3d&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;level:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;internal_format:<span class="constructor">GL</span>.<span class="constructor">InternalFormat</span>.internal_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;depth:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;format_:<span class="constructor">GL</span>.pixel_data_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;type_:<span class="constructor">GL</span>.pixel_data_type&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pixels:<span class="constructor">GL</span>.image_data&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glteximage3d_bytecode"</span>&nbsp;<span class="string">"ml_glteximage3d_native"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexCoord1&nbsp;:&nbsp;s:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gltexcoord1"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexCoord2&nbsp;:&nbsp;s:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;t:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gltexcoord2"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexCoord3&nbsp;:&nbsp;s:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;t:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;r:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gltexcoord3"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexCoord4&nbsp;:&nbsp;s:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;t:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;r:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;q:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gltexcoord4"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexCoord2v&nbsp;:&nbsp;v:float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gltexcoord2v"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexCoord3v&nbsp;:&nbsp;v:float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gltexcoord3v"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glTexCoord4v&nbsp;:&nbsp;v:float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gltexcoord4v"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Min</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;min_filter&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_NEAREST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINEAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NEAREST_MIPMAP_NEAREST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINEAR_MIPMAP_NEAREST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NEAREST_MIPMAP_LINEAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINEAR_MIPMAP_LINEAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Mag</span>&nbsp;:&nbsp;<span class="keyword">sig</span>&nbsp;<span class="keyword">type</span>&nbsp;mag_filter&nbsp;=&nbsp;<span class="constructor">GL_NEAREST</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINEAR</span>&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;wrap_param&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_CLAMP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLAMP_TO_BORDER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLAMP_TO_EDGE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MIRRORED_REPEAT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_REPEAT</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">TexParam</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;tex_param_target&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_TEXTURE_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_3D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;texture_compare_mode&nbsp;=&nbsp;<span class="constructor">GL_NONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;depth_texture_mode&nbsp;=&nbsp;<span class="constructor">GL_LUMINANCE</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INTENSITY</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;tex_param&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_TEXTURE_MIN_FILTER</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.<span class="constructor">Min</span>.min_filter<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_MAG_FILTER</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.<span class="constructor">Mag</span>.mag_filter<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_MIN_LOD</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_MAX_LOD</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_BASE_LEVEL</span>&nbsp;<span class="keyword">of</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_MAX_LEVEL</span>&nbsp;<span class="keyword">of</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_WRAP_S</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.wrap_param<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_WRAP_T</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.wrap_param<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_WRAP_R</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.wrap_param<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_BORDER_COLOR</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_PRIORITY</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_COMPARE_MODE</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.<span class="constructor">TexParam</span>.texture_compare_mode<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_COMPARE_FUNC</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.gl_func<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_TEXTURE_MODE</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.<span class="constructor">TexParam</span>.depth_texture_mode<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GENERATE_MIPMAP</span>&nbsp;<span class="keyword">of</span>&nbsp;bool<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glTexParameter&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">TexParam</span>.tex_param_target&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;param:<span class="constructor">GL</span>.<span class="constructor">TexParam</span>.tex_param&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">CopyTex</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;copy_tex_target&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_TEXTURE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_POSITIVE_X</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_NEGATIVE_X</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_POSITIVE_Y</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_POSITIVE_Z</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glCopyTexImage2D&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">CopyTex</span>.copy_tex_target&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;level:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;internal_format:<span class="constructor">GL</span>.<span class="constructor">InternalFormat</span>.internal_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;x:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;border:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glcopyteximage2d_bytecode"</span>&nbsp;<span class="string">"ml_glcopyteximage2d_native"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glSampleCoverage&nbsp;:&nbsp;value:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;invert:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glsamplecoverage"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_packing_b&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_PACK_SWAP_BYTES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_LSB_FIRST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_SWAP_BYTES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_LSB_FIRST</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPixelStoreb&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;pixel_packing:<span class="constructor">GL</span>.pixel_packing_b&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;param:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpixelstoreb"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_packing_i&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_PACK_ROW_LENGTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_IMAGE_HEIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_SKIP_PIXELS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_SKIP_ROWS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_SKIP_IMAGES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_ALIGNMENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_ROW_LENGTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_IMAGE_HEIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_SKIP_PIXELS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_SKIP_ROWS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_SKIP_IMAGES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_ALIGNMENT</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPixelStorei&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;pixel_packing:<span class="constructor">GL</span>.pixel_packing_i&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;param:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpixelstorei"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPixelZoom&nbsp;:&nbsp;xfactor:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;yfactor:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpixelzoom"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_map&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_PIXEL_MAP_I_TO_I</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MAP_S_TO_S</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MAP_I_TO_R</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MAP_I_TO_G</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MAP_I_TO_B</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MAP_I_TO_A</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MAP_R_TO_R</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MAP_G_TO_G</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MAP_B_TO_B</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PIXEL_MAP_A_TO_A</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPixelMapfv&nbsp;:&nbsp;map:<span class="constructor">GL</span>.pixel_map&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpixelmapfv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glBitmap&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;xorig:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;yorig:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;xmove:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;ymove:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bitmap:(<span class="keywordsign">'</span>a,&nbsp;<span class="keywordsign">'</span>b,&nbsp;<span class="keywordsign">'</span>c)&nbsp;<span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glbitmap_bytecode"</span>&nbsp;<span class="string">"ml_glbitmap_native"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_type&nbsp;=&nbsp;<span class="constructor">GL_COLOR</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STENCIL</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glCopyPixels&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;x:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;y:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pixel_type:<span class="constructor">GL</span>.pixel_type&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glcopypixels"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_transfer_i&nbsp;=&nbsp;<span class="constructor">GL_INDEX_SHIFT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INDEX_OFFSET</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_transfer_f&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_RED_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RED_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GREEN_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GREEN_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLUE_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLUE_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_BIAS</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_transfer_b&nbsp;=&nbsp;<span class="constructor">GL_MAP_COLOR</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP_STENCIL</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_transfer_f_ARB&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_RED_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_GREEN_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_BLUE_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_ALPHA_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_RED_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_GREEN_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_BLUE_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_ALPHA_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_RED_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_GREEN_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_BLUE_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_ALPHA_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_RED_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_GREEN_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_BLUE_BIAS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_ALPHA_BIAS</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPixelTransferi&nbsp;:&nbsp;pname:<span class="constructor">GL</span>.pixel_transfer_i&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;param:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpixeltransferi"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPixelTransferf&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;pname:<span class="constructor">GL</span>.pixel_transfer_f&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;param:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glpixeltransferf"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPixelTransferb&nbsp;:&nbsp;pname:<span class="constructor">GL</span>.pixel_transfer_b&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;param:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpixeltransferb"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPixelTransferfARB&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;pname:<span class="constructor">GL</span>.pixel_transfer_f_ARB&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;param:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glpixeltransferfARB"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Framebuffer</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_buffer_format&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_COLOR_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STENCIL_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_COMPONENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RED</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GREEN</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BGR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGBA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BGRA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LUMINANCE_ALPHA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pixel_buffer_type&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_UNSIGNED_BYTE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BYTE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BITMAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SHORT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FLOAT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_BYTE_3_3_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_BYTE_2_3_3_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_5_6_5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_5_6_5_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_4_4_4_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_4_4_4_4_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_5_5_5_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_SHORT_1_5_5_5_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT_8_8_8_8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT_8_8_8_8_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT_10_10_10_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNSIGNED_INT_2_10_10_10_REV</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glReadPixelsBA_unsafe&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;x:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;y:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.<span class="constructor">Framebuffer</span>.pixel_buffer_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.<span class="constructor">Framebuffer</span>.pixel_buffer_type&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.image_data&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glreadpixels_ba_unsafe_bytecode"</span>&nbsp;<span class="string">"ml_glreadpixels_ba_unsafe_native"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glReadPixelsBA&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;x:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;y:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.<span class="constructor">Framebuffer</span>.pixel_buffer_format&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL</span>.<span class="constructor">Framebuffer</span>.pixel_buffer_type&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.image_data&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glreadpixels_ba_bytecode"</span>&nbsp;<span class="string">"ml_glreadpixels_ba_native"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Plane</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;clip_plane&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_CLIP_PLANE0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glClipPlane&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;plane:<span class="constructor">GL</span>.<span class="constructor">Plane</span>.clip_plane&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;equation:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glclipplane"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glClipPlane_unsafe&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;plane:<span class="constructor">GL</span>.<span class="constructor">Plane</span>.clip_plane&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;equation:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glclipplane_unsafe"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;clip_plane_i&nbsp;=&nbsp;<span class="constructor">GL_CLIP_PLANE</span>&nbsp;<span class="keyword">of</span>&nbsp;int<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glClipPlanei&nbsp;:&nbsp;plane:<span class="constructor">GL</span>.clip_plane_i&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;equation:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glClipPlanei_unsafe&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;plane:<span class="constructor">GL</span>.clip_plane_i&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;equation:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Map1</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;map1_target&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_MAP1_VERTEX_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_VERTEX_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_COLOR_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glMap1&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">Map1</span>.map1_target&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;u1:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;u2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;stride:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;order:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;points:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glmap1d_bytecode"</span>&nbsp;<span class="string">"ml_glmap1d_native"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Map2</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;map2_target&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_MAP2_VERTEX_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_VERTEX_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_COLOR_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glMap2&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;target:<span class="constructor">GL</span>.<span class="constructor">Map2</span>.map2_target&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;u1:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;u2:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;ustride:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;uorder:int&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;v1:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;v2:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;vstride:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;vorder:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;points:float&nbsp;array&nbsp;array&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glmap2d_bytecode"</span>&nbsp;<span class="string">"ml_glmap2d_native"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEvalCoord1&nbsp;:&nbsp;u:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glevalcoord1d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEvalCoord2&nbsp;:&nbsp;u:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glevalcoord2d"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">EvalMesh1</span>&nbsp;:&nbsp;<span class="keyword">sig</span>&nbsp;<span class="keyword">type</span>&nbsp;eval_mesh_1&nbsp;=&nbsp;<span class="constructor">GL_POINT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE</span>&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">EvalMesh2</span>&nbsp;:&nbsp;<span class="keyword">sig</span>&nbsp;<span class="keyword">type</span>&nbsp;eval_mesh_2&nbsp;=&nbsp;<span class="constructor">GL_POINT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FILL</span>&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEvalMesh1&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;mode:<span class="constructor">GL</span>.<span class="constructor">EvalMesh1</span>.eval_mesh_1&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;i1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;i2:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glevalmesh1"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEvalMesh2&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;mode:<span class="constructor">GL</span>.<span class="constructor">EvalMesh2</span>.eval_mesh_2&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;i1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;i2:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;j1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;j2:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glevalmesh2"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEvalPoint1&nbsp;:&nbsp;i:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glevalpoint1"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEvalPoint2&nbsp;:&nbsp;i:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;j:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glevalpoint2"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glMapGrid1&nbsp;:&nbsp;un:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;u1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;u2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glmapgrid1d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glMapGrid2&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;un:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;u1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;u2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;vn:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glmapgrid2d_bytecode"</span>&nbsp;<span class="string">"ml_glmapgrid2d_native"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;list_mode&nbsp;=&nbsp;<span class="constructor">GL_COMPILE</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COMPILE_AND_EXECUTE</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glNewList&nbsp;:&nbsp;gl_list:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;mode:<span class="constructor">GL</span>.list_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glnewlist"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEndList&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glendlist"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGenList&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;=&nbsp;<span class="string">"ml_glgenlist"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGenLists&nbsp;:&nbsp;range:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;=&nbsp;<span class="string">"ml_glgenlists"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glCallList&nbsp;:&nbsp;gl_list:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glcalllist"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glCallLists&nbsp;:&nbsp;gl_lists:int&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glcalllists"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDeleteLists&nbsp;:&nbsp;gl_list:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;range:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gldeletelists"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glListBase&nbsp;:&nbsp;base:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gllistbase"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glIsList&nbsp;:&nbsp;gl_list:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool&nbsp;=&nbsp;<span class="string">"ml_glislist"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetListMode&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.list_mode&nbsp;=&nbsp;<span class="string">"ml_glgetlistmode"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;render_mode&nbsp;=&nbsp;<span class="constructor">GL_RENDER</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SELECT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FEEDBACK</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glRenderMode&nbsp;:&nbsp;mode:<span class="constructor">GL</span>.render_mode&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;=&nbsp;<span class="string">"ml_glrendermode"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glInitNames&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glinitnames"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glLoadName&nbsp;:&nbsp;name:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glloadname"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPushName&nbsp;:&nbsp;name:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glpushname"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glPopName&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glpopname"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;select_buffer<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;new_select_buffer&nbsp;:&nbsp;buffer_size:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.select_buffer<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_alloc_select_buffer"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;free_select_buffer&nbsp;:&nbsp;select_buffer:<span class="constructor">GL</span>.select_buffer&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_free_select_buffer"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;select_buffer_get&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;select_buffer:<span class="constructor">GL</span>.select_buffer&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_select_buffer_get"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glSelectBuffer&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;buffer_size:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;select_buffer:<span class="constructor">GL</span>.select_buffer&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glselectbuffer"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glSelectBufferBA&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;(nativeint,&nbsp;<span class="constructor">Bigarray</span>.nativeint_elt,&nbsp;<span class="constructor">Bigarray</span>.c_layout)&nbsp;<span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glselectbuffer_ba"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;fog_mode&nbsp;=&nbsp;<span class="constructor">GL_LINEAR</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EXP</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EXP2</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;fog_coord_src&nbsp;=&nbsp;<span class="constructor">GL_FOG_COORD</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRAGMENT_DEPTH</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;fog_param&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_FOG_MODE</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.fog_mode<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_DENSITY</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_START</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_END</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_INDEX</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_COLOR</span>&nbsp;<span class="keyword">of</span>&nbsp;(float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float)<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_COORD_SRC</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.fog_coord_src<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glFog&nbsp;:&nbsp;pname:<span class="constructor">GL</span>.fog_param&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;shader_object<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;shader_program<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;shader_type&nbsp;=&nbsp;<span class="constructor">GL_VERTEX_SHADER</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FRAGMENT_SHADER</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glCreateShader&nbsp;:&nbsp;shader_type:<span class="constructor">GL</span>.shader_type&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.shader_object<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glcreateshader"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDeleteShader&nbsp;:&nbsp;shader:<span class="constructor">GL</span>.shader_object&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gldeleteshader"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glIsShader&nbsp;:&nbsp;shader:<span class="constructor">GL</span>.shader_object&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool&nbsp;=&nbsp;<span class="string">"ml_glisshader"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glShaderSource&nbsp;:&nbsp;shader:<span class="constructor">GL</span>.shader_object&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glshadersource"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glCompileShader&nbsp;:&nbsp;shader:<span class="constructor">GL</span>.shader_object&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glcompileshader"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glCreateProgram&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.shader_program&nbsp;=&nbsp;<span class="string">"ml_glcreateprogram"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDeleteProgram&nbsp;:&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gldeleteprogram"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glAttachShader&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;shader:<span class="constructor">GL</span>.shader_object&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glattachshader"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDetachShader&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;shader:<span class="constructor">GL</span>.shader_object&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gldetachshader"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glLinkProgram&nbsp;:&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gllinkprogram"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUseProgram&nbsp;:&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluseprogram"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUnuseProgram&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glunuseprogram"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetShaderCompileStatus&nbsp;:&nbsp;shader:<span class="constructor">GL</span>.shader_object&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetshadercompilestatus"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetShaderCompileStatus_exn&nbsp;:&nbsp;shader:<span class="constructor">GL</span>.shader_object&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetshadercompilestatus_exn"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetUniformLocation&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;name:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetuniformlocation"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_program_bool&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_DELETE_STATUS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINK_STATUS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VALIDATE_STATUS</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_program_int&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_INFO_LOG_LENGTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ATTACHED_SHADERS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ACTIVE_ATTRIBUTES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ACTIVE_ATTRIBUTE_MAX_LENGTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ACTIVE_UNIFORMS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ACTIVE_UNIFORM_MAX_LENGTH</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetProgrami&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pname:<span class="constructor">GL</span>.get_program_int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetprogram_int"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetProgramb&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pname:<span class="constructor">GL</span>.get_program_bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetprogram_bool"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform1f&nbsp;:&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gluniform1f"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform2f&nbsp;:&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform2f"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform3f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform3f"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform4f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v3:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform4f"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform1i&nbsp;:&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gluniform1i"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform2i&nbsp;:&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform2i"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform3i&nbsp;:&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v2:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform3i"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform4i&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v2:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v3:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform4i"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform1fv&nbsp;:&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform1fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform2fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform2fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform3fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform3fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform4fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform4fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform1iv&nbsp;:&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:int&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniform1iv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform2iv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:int&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gluniform2iv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform3iv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:int&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gluniform3iv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniform4iv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:int&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_gluniform4iv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix2f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix2f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix3f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix3f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix4f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix4f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix2x3f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix2x3f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix3x2f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix3x2f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix2x4f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix2x4f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix4x2f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix4x2f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix3x4f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix3x4f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix4x3f&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix4x3f"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix2fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix2fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix3fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix3fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix4fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix4fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix2x3fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix2x3fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix3x2fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix3x2fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix2x4fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix2x4fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix4x2fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix4x2fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix3x4fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix3x4fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glUniformMatrix4x3fv&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;location:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;count:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;transpose:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;value:float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gluniformmatrix4x3fv"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetAttribLocation&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;name:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetattriblocation"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glBindAttribLocation&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;name:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glbindattriblocation"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertexAttrib1s&nbsp;:&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertexattrib1s"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertexAttrib1d&nbsp;:&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertexattrib1d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertexAttrib2s&nbsp;:&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertexattrib2s"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertexAttrib2d&nbsp;:&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertexattrib2d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertexAttrib3s&nbsp;:&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v2:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertexattrib3s"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertexAttrib3d&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertexattrib3d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertexAttrib4s&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v2:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v3:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertexattrib4s"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glVertexAttrib4d&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v0:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;v3:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glvertexattrib4d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetShaderInfoLog&nbsp;:&nbsp;shader:<span class="constructor">GL</span>.shader_object&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetshaderinfolog"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetProgramInfoLog&nbsp;:&nbsp;program:<span class="constructor">GL</span>.shader_program&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetprograminfolog"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glEnableVertexAttribArray&nbsp;:&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glenablevertexattribarray"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glDisableVertexAttribArray&nbsp;:&nbsp;index:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_gldisablevertexattribarray"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Get</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_boolean_1&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ALPHA_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUTO_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLEND</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CLIP_PLANE5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_LOGIC_OP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_MATERIAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_SUM</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_TABLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CONVOLUTION_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CONVOLUTION_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CULL_FACE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_RASTER_POSITION_VALID</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_WRITEMASK</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DITHER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DOUBLEBUFFER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EDGE_FLAG</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EDGE_FLAG_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_COORD_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_HISTOGRAM</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INDEX_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INDEX_LOGIC_OP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INDEX_MODE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT6</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT7</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHTING</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT_MODEL_LOCAL_VIEWER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT_MODEL_TWO_SIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_SMOOTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_STIPPLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_TEXTURE_COORD_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_VERTEX_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP1_VERTEX_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_COLOR_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_TEXTURE_COORD_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_VERTEX_3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_VERTEX_4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP_STENCIL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MINMAX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NORMAL_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NORMALIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_SWAP_BYTES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SMOOTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SPRITE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_FILL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_LINE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_POINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_SMOOTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_STIPPLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_COLOR_MATRIX_COLOR_TABLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_LSB_FIRST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POST_CONVOLUTION_COLOR_TABLE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RESCALE_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RGBA_MODE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLE_COVERAGE_INVERT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SCISSOR_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SECONDARY_COLOR_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SEPARABLE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STENCIL_TEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STEREO</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_3D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_COORD_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_CUBE_MAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_Q</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_R</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_S</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_GEN_T</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_LSB_FIRST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_SWAP_BYTES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERTEX_ARRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERTEX_PROGRAM_POINT_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERTEX_PROGRAM_TWO_SIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_ALIGNMENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_IMAGE_HEIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_ROW_LENGTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_SKIP_IMAGES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_SKIP_PIXELS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PACK_SKIP_ROWS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_IMAGE_HEIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_ROW_LENGTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_SKIP_IMAGES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_SKIP_PIXELS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_UNPACK_SKIP_ROWS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_boolean_4&nbsp;=&nbsp;<span class="constructor">GL_COLOR_WRITEMASK</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_integer_4&nbsp;=&nbsp;<span class="constructor">GL_VIEWPORT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SCISSOR_BOX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_integer_2&nbsp;=&nbsp;<span class="constructor">GL_MAX_VIEWPORT_DIMS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_integer_1&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ACCUM_RED_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ACCUM_GREEN_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ACCUM_BLUE_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ACCUM_ALPHA_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_RASTER_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIST_BASE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIST_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_LIGHTS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_LIST_NESTING</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_TEXTURE_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_TEXTURE_COORDS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ACTIVE_TEXTURE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_TEXTURE_UNITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_ELEMENTS_INDICES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_ELEMENTS_VERTICES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SUBPIXEL_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STENCIL_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NAME_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_MATRIX_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MODELVIEW_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PROJECTION_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_MODELVIEW_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_PROJECTION_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_TEXTURE_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLE_BUFFERS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_CLIP_PLANES</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AUX_BUFFERS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RED_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GREEN_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLUE_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA_BITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_3D_TEXTURE_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_CLIENT_ATTRIB_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_ATTRIB_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_COLOR_MATRIX_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_CUBE_MAP_TEXTURE_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_DRAW_BUFFERS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_NAME_STACK_DEPTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_NORMAL_ARRAY_STRIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INDEX_ARRAY_STRIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_ARRAY_STRIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EDGE_FLAG_ARRAY_STRIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_COORD_ARRAY_STRIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERTEX_ARRAY_STRIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SECONDARY_COLOR_ARRAY_STRIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_COORD_ARRAY_STRIDE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SECONDARY_COLOR_ARRAY_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SELECTION_BUFFER_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_FRAGMENT_UNIFORM_COMPONENTS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_VERTEX_UNIFORM_COMPONENTS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAX_VERTEX_ATTRIBS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_float_3&nbsp;=&nbsp;<span class="constructor">GL_CURRENT_NORMAL</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_DISTANCE_ATTENUATION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_float_4&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_ACCUM_CLEAR_VALUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLEND_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_COLOR_CLEAR_VALUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_RASTER_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_RASTER_POSITION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_RASTER_SECONDARY_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_RASTER_TEXTURE_COORDS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_SECONDARY_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_TEXTURE_COORDS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_COLOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT_MODEL_AMBIENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MAP2_GRID_DOMAIN</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_matrix&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_COLOR_MATRIX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_MODELVIEW_MATRIX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_PROJECTION_MATRIX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_MATRIX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TRANSPOSE_COLOR_MATRIX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TRANSPOSE_MODELVIEW_MATRIX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TRANSPOSE_PROJECTION_MATRIX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TRANSPOSE_TEXTURE_MATRIX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_float_1&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_CURRENT_RASTER_DISTANCE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_DENSITY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_END</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_FOG_START</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INDEX_CLEAR_VALUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_WIDTH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINE_WIDTH_GRANULARITY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STENCIL_CLEAR_VALUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_CLEAR_VALUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SAMPLE_COVERAGE_VALUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ZOOM_X</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ZOOM_Y</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_ALPHA_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_BLUE_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_GREEN_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RED_SCALE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SIZE_GRANULARITY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SIZE_MAX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SIZE_MIN</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_FADE_THRESHOLD_SIZE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CURRENT_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_FACTOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POLYGON_OFFSET_UNITS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_float_2&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_LINE_WIDTH_RANGE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POINT_SIZE_RANGE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DEPTH_RANGE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_texture_binding&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_TEXTURE_BINDING_1D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_BINDING_2D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_BINDING_3D</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE_BINDING_CUBE_MAP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_light&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_SPOT_EXPONENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPOT_CUTOFF</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_CONSTANT_ATTENUATION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LINEAR_ATTENUATION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_QUADRATIC_ATTENUATION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPOT_DIRECTION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_AMBIENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_DIFFUSE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SPECULAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_POSITION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_LIGHT_MODEL_COLOR_CONTROL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetBoolean1&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_boolean_1&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool&nbsp;=&nbsp;<span class="string">"ml_glgetboolean1"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetBoolean4&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_boolean_4&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool&nbsp;*&nbsp;bool&nbsp;*&nbsp;bool&nbsp;*&nbsp;bool<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetboolean4"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetInteger4&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_integer_4&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;*&nbsp;int&nbsp;*&nbsp;int&nbsp;*&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetinteger4"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetInteger1&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_integer_1&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;=&nbsp;<span class="string">"ml_glgetinteger1"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetInteger2&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_integer_2&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;*&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetinteger2"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetFloat4&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_float_4&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetfloat4"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetFloat3&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_float_3&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetfloat3"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetFloat2&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_float_2&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetfloat2"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetFloat1&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_float_1&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;=&nbsp;<span class="string">"ml_glgetfloat1"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetMatrix&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;array&nbsp;array<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetmatrix"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetMatrixFlat&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;array<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgetmatrix_flat"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetTextureBinding&nbsp;:&nbsp;<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_texture_binding&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.texture_id<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glgettexturebinding"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;get_string&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_VENDOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_RENDERER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_VERSION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_SHADING_LANGUAGE_VERSION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_EXTENSIONS</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetString&nbsp;:&nbsp;name:<span class="constructor">GL</span>.get_string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;=&nbsp;<span class="string">"ml_glgetstring"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;gl_error&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_NO_ERROR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INVALID_ENUM</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INVALID_VALUE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_INVALID_OPERATION</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STACK_OVERFLOW</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_STACK_UNDERFLOW</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_OUT_OF_MEMORY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TABLE_TOO_LARGE</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glGetError&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.gl_error&nbsp;=&nbsp;<span class="string">"ml_glgeterror"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;tuple_params&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">P1</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">P3</span>&nbsp;<span class="keyword">of</span>&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">P4</span>&nbsp;<span class="keyword">of</span>&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">PCC</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">GL</span>.color_control<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glGetLight&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;light:<span class="constructor">GL</span>.gl_light&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;pname:<span class="constructor">GL</span>.<span class="constructor">Get</span>.get_light&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">GL</span>.tuple_params<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;texture_i&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">GL_TEXTURE0</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE1</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE2</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE3</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE4</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE5</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE6</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE7</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE8</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE9</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE10</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE11</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE12</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE13</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE14</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE15</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE16</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE17</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE18</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE19</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE20</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE21</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE22</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE23</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE24</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE25</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE26</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE27</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE28</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE29</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE30</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">GL_TEXTURE31</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glActiveTexture&nbsp;:&nbsp;texture:<span class="constructor">GL</span>.texture_i&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glactivetexture"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glActiveTexturei&nbsp;:&nbsp;texture:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_glactivetexture_i"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glMultiTexCoord2&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;texture:<span class="constructor">GL</span>.texture_i&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;s:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;t:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glmultitexcoord2d"</span>&nbsp;<span class="string">"noalloc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glMultiTexCoord2i&nbsp;:&nbsp;texture:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;s:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;t:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_glmultitexcoord2f_i"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;glmlite_version&nbsp;:&nbsp;int&nbsp;*&nbsp;int&nbsp;*&nbsp;int<br>
<span class="keyword">end</span></code></body></html>